package br.com.jsfprimefaces.dao;

import java.io.Serializable;
import java.util.List;
import org.hibernate.Session;

import br.com.jsfprimefaces.model.Usuario;
import br.com.jsfprimefaces.util.BancoUtil;

/**
 * @author Ramonsv89@gmail.com
 *
 */

public class UsuarioDAO implements Serializable{
	
	private static final long serialVersionUID = 1L;

	public void insert(Usuario usuario){
		Session session = BancoUtil.getFactory().openSession();
		session.beginTransaction();
		session.save(usuario);
		session.getTransaction().commit();
		session.close();
	}
	
	public void delete(Usuario usuario){
		Session session = BancoUtil.getFactory().openSession();
		session.beginTransaction();
		session.delete(usuario);
		session.getTransaction().commit();
		session.close();
	}
	
	public void update(Usuario usuario){		
		Session session = BancoUtil.getFactory().openSession();
		session.beginTransaction();
		session.saveOrUpdate(usuario);
		session.getTransaction().commit();
		session.close();
	}
	
	public List<Usuario> search(int id){
		Session session = BancoUtil.getFactory().openSession();
		session.beginTransaction();
		
		String sql = "From usuario where id = "+id;
		List<Usuario> list = session.createQuery(sql).list();
		
		session.getTransaction().commit();
		session.close();
		return list;
		
	}
	
	public boolean autenticar(Usuario usuarioBean){
		/*String sql = "select * from UsuarioBean where nome='"+usuarioBean.getLogin()+"' and senha='"+usuarioBean.getSenha()+"'";*/
		String sql = "from Usuario where login = '"+usuarioBean.getLogin()+"' and senha = '"+usuarioBean.getSenha()+"'";
		
		Session session = BancoUtil.getFactory().openSession();
		session.beginTransaction();
		
		List<Usuario> list = session.createQuery(sql).list();
		
		if(!list.isEmpty()){
			return true;	
		}
		session.getTransaction().commit();
		session.close();
		return false;
		
	}
}
